#pragma once

#include "Color.h"

namespace Graphics
{
	// Type of blending
	enum BLEND_TYPE
	{
		BLEND_ALPHA,
		BLEND_SUB,
		BLEND_ADD
	};

	class BltInfo
	{
	private:
		BLEND_TYPE m_BlendType;
		int m_Angle;
		float m_Opacity;
		Color m_Color;
		Color m_Tone;
		Color m_Diffuse[4];
	public:
		BltInfo(void);
		~BltInfo(void);
	public:
		
		// Get/Set the opacity
		byte GetOpacity() const;
		float GetOpacityF() const;
		void SetOpacity(byte opacity);
		void SetOpacityF(float opacity);

		// Get/Set the color value by type
		void SetColor(const Color& color);
		const Color& GetColor(void) const;

		// Get/Set the tone value by type
		void SetTone(const Color& color);
		const Color& GetTone(void) const;

		// Get/Set the diffuse value by type
		Color* const GetDiffuse(void) const;
		
		// Get/Set the angle
		int GetAngle() const;
		float GetAngleF() const;
		void SetAngle(int angle);
		void SetAngleF(float angle);

		// Get/Set the type of blending
		BLEND_TYPE GetBlendType(void) const;
		void SetBlendType(BLEND_TYPE type);
	};
}